package br.com.sistema.persistencia.dao.permissao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.framework.client.permissao.entidade.Grupo;
import br.com.framework.client.persistencia.GenericDAOImpl;

public class PermissaoDAO extends GenericDAOImpl<Grupo> {

	private EntityManager em;

	public PermissaoDAO(EntityManager em) {
		super.setEntityManager(em);
		this.em = em;
	}

	public boolean possuiPermissao(Integer idGrupo, String pagina, String acao) {
		StringBuffer hql = new StringBuffer();
		hql.append(" select 1 ");
		hql.append(" from GrupoTela ");
		hql.append(" where 	grupo.id = :idGrupo ");
		hql.append(" 	and permissao like :permissao ");
		hql.append(" 	and tela.path = :tela ");

		Query q = em.createQuery(hql.toString());
		q.setParameter("idGrupo", idGrupo);
		q.setParameter("permissao", "%" + acao + "%");
		q.setParameter("tela", pagina);

		@SuppressWarnings("unchecked")
		List<Integer> retorno = q.getResultList();

		return retorno != null && retorno.size() > 0;

	}
}
